#include <sqlite3.h>
#include <stdio.h>

/*
	自动提交：
	默认情况下，SQLite 版本 3 在自动提交模式下运行。
	在自动提交模式下，只要与当前数据库连接关联的所有操作完成，
	就会提交对数据库所做的所有更改。
	自动提交模式由语句禁用，并由 或 重新启用。
	BEGINCOMMITROLLBACK

	功能：
		本示例检查数据库是否处于自动提交模式。
		gcc -o get_ac_mode get_ac_mode.c -lsqlite3

*/


int main() {
    
    sqlite3 *db;
    
    int rc = sqlite3_open("test.db", &db);
    
    if (rc != SQLITE_OK) {
        
        fprintf(stderr, "Cannot open database: %s\n", 
                sqlite3_errmsg(db));
        sqlite3_close(db);
        
        return 1;
    }    

    //如果数据库未处于自动提交模式，则该函数返回零。
    //如果它处于自动提交模式，则返回非零值。
    printf("Autocommit: %d\n", sqlite3_get_autocommit(db));
    
    sqlite3_close(db);
    
    return 0;
}

